package com.yunxin.core.wechat.domain;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;

/**
 * 客户微信授权详情表
 * @TableName wechat_info
 */
@TableName(value ="wechat_info")
@Data
public class WechatInfo implements Serializable {
    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 企业微信永久授权码
     */
    @Schema(description = "企业微信永久授权码")
    private String permanentCode;

    /**
     * 授权方企业微信id
     */
    @Schema(description = "授权方企业微信id")
    private String corpid;

    /**
     * 授权方企业名称
     */
    @Schema(description = "授权方企业名称")
    private String corpName;

    /**
     * 授权方企业类型 认证号：verified, 注册号：unverified
     */
    @Schema(description = "授权方企业类型 认证号：verified, 注册号：unverified")
    private String corpType;

    /**
     * 授权方企业方形头像
     */
    @Schema(description = "授权方企业方形头像")
    private String corpSquareLogoUrl;

    /**
     * 	授权方企业用户规模
     */
    @Schema(description = "授权方企业用户规模")
    private String corpUserMax;

    /**
     * 授权方企业的主体名称(仅认证或验证过的企业有)，即企业全称
     */
    @Schema(description = "授权方企业的主体名称(仅认证或验证过的企业有)，即企业全称")
    private String corpFullName;

    /**
     * 企业类型，1. 企业; 2. 政府以及事业单位; 3. 其他组织, 4.团队号
     */
    @Schema(description = "企业类型，1. 企业; 2. 政府以及事业单位; 3. 其他组织, 4.团队号")
    private String subjectType;

    /**
     * 认证到期时间
     */
    @Schema(description = "认证到期时间")
    private String verifiedEndTime;

    /**
     * 授权企业在微信插件（原企业号）的二维码，可用于关注微信插件
     */
    @Schema(description = "授权企业在微信插件（原企业号）的二维码，可用于关注微信插件")
    private String corpWxqrcode;

    /**
     * 企业规模。当企业未设置该属性时，值为空
     */
    @Schema(description = "企业规模。当企业未设置该属性时，值为空")
    private String corpScale;

    /**
     * 企业所属行业。当企业未设置该属性时，值为空
     */
    @Schema(description = "企业所属行业。当企业未设置该属性时，值为空")
    private String corpIndustry;

    /**
     * 企业所属子行业。当企业未设置该属性时，值为空
     */
    @Schema(description = "企业所属子行业。当企业未设置该属性时，值为空")
    private String corpSubIndustry;

    /**
     * 授权信息。如果是通讯录应用，且没开启实体应用，是没有该项的。通讯录应用拥有企业通讯录的全部信息读写权限
     */
    @Schema(description = "授权信息。如果是通讯录应用，且没开启实体应用，是没有该项的。通讯录应用拥有企业通讯录的全部信息读写权限")
    private Object authInfo;

    //第三方应用id
    @Schema(description = "第三方应用id")
    private String agentid;

    /**
     * 	授权管理员的信息，可能不返回
     */
    @Schema(description = "授权管理员的信息，可能不返回")
    private Object authUserInfo;

    /**
     * 	推广二维码安装相关信息
     */
    @Schema(description = "推广二维码安装相关信息")
    private Object registerCodeInfo;

    /**
     * 版本信息
     */
    @Schema(description = "版本信息")
    private Object editionInfo;

    /**
     * 标识删除 0.存在 1.删除
     */
    @TableLogic(value = "0",delval = "1")
    private Integer isDel;

    /**
     * 创建人
     */
    private String creator;

    /**
     * 修改人
     */
    private String editor;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date editTime;

    /**
     * 版本号
     */
    //@Version
    private Long version;
    //是否购买该公司的接口权限 0否 1是
    private Integer buyInterfaceStatus;

    private String secret;

    private String token;

    private String encodingAesKey;

    private String suiteid;

    public String messageToken;
    //企微消息记录回调key
    public String messageEncodingAesKey;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}